package article3.singleton;

/**
 * 实现singleton的第二方法
 * 私有构造器加共有成员, 共有成员是个静态工厂方法
 * 优势：
 * 1.提供了灵活性：在不改变其API的前提下，可以改变该类是否为singleton的想法。工厂方法返回该类的唯一实例。但是，它很容易被修改，
 *   比如改成每个调用该方法的线程返回一个唯一的实例。
 * 2.如果应用程序需要，可以编写一个泛型singleton工厂(generic singleton factory) （详见30 条）
 * 3.可以通过方法应用(method reference) 作为提供者。比如Elvis::instatce就是一个Supper<Elvis>
 * 除非满足以上任意一种优势，否则还是优先考虑共有域(public-field)的方法
 *
 * @author cctv
 */
public class SingletonWithStaticFactory {
    private static final SingletonWithStaticFactory INSTANCE = new SingletonWithStaticFactory();
    private SingletonWithStaticFactory(){}
    public static SingletonWithStaticFactory getInstance(){
        return INSTANCE;
    }


}
